package com.zhaoxi.project.mes.service.impl;

import java.util.List;
import com.zhaoxi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import com.zhaoxi.common.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import com.zhaoxi.project.mes.domain.MesBomLine;
import com.zhaoxi.project.mes.mapper.MesBomMapper;
import com.zhaoxi.project.mes.domain.MesBom;

/**
 * 生产物品Service业务层处理
 * 
 * @author zhaoxi
 * @date 2023-08-28
 */
@Service
public class MesBomServiceImpl
{
    @Autowired
    private MesBomMapper mesBomMapper;

    /**
     * 查询生产物品
     * 
     * @param goodsCode 生产物品主键
     * @return 生产物品
     */
    
    public MesBom selectMesBomByGoodsCode(String goodsCode)
    {
        return mesBomMapper.selectMesBomByGoodsCode(goodsCode);
    }

    /**
     * 查询生产物品列表
     * 
     * @param mesBom 生产物品
     * @return 生产物品
     */
    
    public List<MesBom> selectMesBomList(MesBom mesBom)
    {
        return mesBomMapper.selectMesBomList(mesBom);
    }

    /**
     * 新增生产物品
     * 
     * @param mesBom 生产物品
     * @return 结果
     */
    @Transactional
    
    public int insertMesBom(MesBom mesBom)
    {
        mesBom.setCreateTime(DateUtils.getNowDate());
        int rows = mesBomMapper.insertMesBom(mesBom);
        insertMesBomLine(mesBom);
        return rows;
    }

    /**
     * 修改生产物品
     * 
     * @param mesBom 生产物品
     * @return 结果
     */
    @Transactional
    
    public int updateMesBom(MesBom mesBom)
    {
        mesBom.setUpdateTime(DateUtils.getNowDate());
        mesBomMapper.deleteMesBomLineByGoodsCode(mesBom.getGoodsCode());
        insertMesBomLine(mesBom);
        return mesBomMapper.updateMesBom(mesBom);
    }

    /**
     * 批量删除生产物品
     * 
     * @param goodsCodes 需要删除的生产物品主键
     * @return 结果
     */
    @Transactional
    
    public int deleteMesBomByGoodsCodes(String[] goodsCodes)
    {
        mesBomMapper.deleteMesBomLineByGoodsCodes(goodsCodes);
        return mesBomMapper.deleteMesBomByGoodsCodes(goodsCodes);
    }

    /**
     * 删除生产物品信息
     * 
     * @param goodsCode 生产物品主键
     * @return 结果
     */
    @Transactional
    
    public int deleteMesBomByGoodsCode(String goodsCode)
    {
        mesBomMapper.deleteMesBomLineByGoodsCode(goodsCode);
        return mesBomMapper.deleteMesBomByGoodsCode(goodsCode);
    }

    /**
     * 新增物品物料清单明细信息
     * 
     * @param mesBom 生产物品对象
     */
    public void insertMesBomLine(MesBom mesBom)
    {
//        List<MesBomLine> mesBomLineList = MesBom.getMesBomLineList();
//        String goodsCode = mesBom.getGoodsCode();
//        if (StringUtils.isNotNull(MesBom))
//        {
//            List<MesBomLine> list = new ArrayList<MesBomLine>();
//            for (MesBomLine mesBomLine : mesBomLineList)
//            {
////                mesBomLine.setGoodsCode(goodsCode);
//                list.add(mesBomLine);
//            }
//            if (list.size() > 0)
//            {
//                mesBomMapper.batchMesBomLine(list);
//            }
//        }
    }
}
